1. Field of the Invention
The present invention relates to the field of computer animation and, in particular, to advection of UV texture maps in fluid flows.
2. Description of the Related Art
In computer animation, fluid flows are typically modeled by dividing the fluid into regions, typically represented as cubic regions, called volumetric elements, or voxels, where each voxel includes a portion of the fluid. The fluid flow, as modeled by the collection of voxels, serves as input to a software application that simulates the fluid flow over time. At specific points in time, the simulated fluid flow is rendered to a 2D image representing a frame of film or video. A collection of these rendered images may then be played in sequence to visualize the fluid flow. The fluid flow may be composited with other visual elements to create a final rendered image.
Each voxel in the fluid flow may be rendered over time by measuring the amount of fluid within each voxel at a given image frame, as determined by the simulation software application. As the simulation progresses, fluid may enter a given voxel at some locations and exit the voxel in other locations. The net volume of fluid in the voxel may increase, decrease, or remain the same from a particular image frame to the next image frame. Each voxel is rendered to a 2D surface, representing the view of a virtual camera, to create the image of the fluid. One drawback with this approach is that volumetric rendering is compute intensive. When simulating large fluid flows, such as the water flowing in a large river, the amount of time needed to create each image frame may be unacceptably long, even when a substantially high quantity of servers are deployed to perform the simulation and rendering of the fluid flow. One possible solution is to increase the size of each voxel in the fluid flow, thereby decreasing the number of voxels in the overall fluid flow that are simulated and rendered. However, a small voxel size is often desired in order to model fine detail of the fluid flow, thereby creating a more realistic and visually pleasing image.
The surface of such a fluid flow may be modeled by computing a height field that defines the displacement of the surface of the fluid over time. For example, when modeling the surface of a body of water, an increasing height field may represent an area of the surface where a wave is developing, while a decreasing height field may represent an area of the surface where a trough is developing. Again, a simulation software application may simulate the surface characteristics, based on changes in the height field over time, and the simulation is rendered at specific points to create a series of images representing the surface of the fluid. One drawback with this approach is that such height field models may provide reasonable simulations for relatively stable fluids, such as an ocean surface, these models may not provide a realistic surface image for rapidly moving fluids, such as the surface of a rushing river.